Repository navigation
feat: add memory debug mode and settings drawer - #105
Merged
Merged
Conversation
Instrument opt-in builds with fatal UBSan checks and libc++ debug hardening. Supply source-aware UBSan handlers through validated WebAssembly imports so undefined user symbols still fail compilation.\n\nRefs #104
Add a top-right Settings drawer with an auto-saving extension-wide Memory Debug Mode toggle and official UBSan help link. Snapshot the setting into every shared compile payload so toolbar, shortcuts, and terminal builds use the same mode.\n\nRefs #104
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
(?)help icon to Clang's official UBSan documentation in a protected new tab.0.5.0.Implementation
chrome.storage.local/browser.storage.local.memoryDebugModeinto the shared compile payload used by toolbar actions, shortcuts, and terminalg++/clang++commands.-fsanitize=undefined, fatal recovery behavior, debug information, and libc++ debug hardening centrally in the compiler worker.--allow-undefinedcannot conceal ordinary unresolved user symbols.Scope and limitations
The bundled
wasm32-wasiClang target rejects AddressSanitizer. Memory Debug Mode therefore provides the confirmed combination of UBSan and hardened libc++ checks, not comprehensive ASan heap-overflow or use-after-free detection. GenericRuntimeError: unreachableoutput is not used as the accepted diagnostic for supported UBSan failures.Validation
npm cinpm run lintnpm run buildnpm run test:e2e— 216 passednpm run test:e2e:compiler— 7 passed against the bundled Clang/LLD/WASI toolchainnpm run test:browser:chrome/ direct Chrome smoke — Settings UI, persistence, protected help link, and compile/run fallback passednpm run version:checknpm run release:check-versionnpm run package:release— produced the0.5.0Chromium-family archive and checksumsnpm audit --audit-level=highreports the repository's existing dependency-graph findings (2 moderate, 13 high). This PR changes no dependency versions; resolving the findings—some of which require breaking build-tool upgrades—is intentionally kept out of Issue #104.Closes #104